#include "process.h"
#include <unistd.h>
#include <time.h>
#include <stdlib.h>

//函数指针类型
typedef void (*call_t)(double,double);



double total = 1024.0;
double speed[] ={1.0 , 0.05 , 0.3 , 0.02 , 0.01 , 0.001}; 

//回调函数
void download(int total,call_t cb)
{
    srand(time(NULL));
    double current = 0.0;
    while(current <= total)
    {
        cb(total,current);//进行回调
        if(current >= total) break;
        //下载代码
       int random = rand() % 6; 
       usleep(5000);
        
        current += speed[random];
        if(current >= total) current = total;


    }

}

int main()
{
    //process();
    download(1024.0,FlushProcess);
    printf("download 1024.0MB done\n");
    download(512.0,FlushProcess);
    printf("download 512.0MB done\n");
    download(256.0,FlushProcess);
    printf("download 256.0MB done\n");
    download(128.0,FlushProcess);
    printf("download 128.0MB done\n");
    download(64.0,FlushProcess);
    printf("download 64.0MB done\n");
    download(32.0,FlushProcess);
    printf("download 32.0MB done\n");
   return 0;
}

